<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Animations: getComputedStyle().animation</title>
<link rel="help" href="https://drafts.csswg.org/css-animations/#propdef-animation">
<meta name="assert" content="animation computed value is as specified.">
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../css/support/computed-testcommon.js"></script>
</head>
<body>
<div id="target"></div>
<script>
// <single-animation> = <time> || <easing-function> || <time> ||
// <single-animation-iteration-count> || <single-animation-direction> ||
// <single-animation-fill-mode> || <single-animation-play-state> ||
// [ none | <keyframes-name> ]

test(() => {
  assert_equals(getComputedStyle(document.getElementById('target')).animation, "none");
}, "Default animation value");

test_computed_value("animation", "1s", "1s");
test_computed_value("animation", "cubic-bezier(0, -2, 1, 3)", "cubic-bezier(0, -2, 1, 3)");
test_computed_value("animation", "ease-in-out", "ease-in-out");
test_computed_value("animation", "1s -3s", "1s -3s");
test_computed_value("animation", "4", "4");
test_computed_value("animation", "reverse", "reverse");
test_computed_value("animation", "both", "both");
test_computed_value("animation", "paused", "paused");
test_computed_value("animation", "none", "none");
test_computed_value("animation", "anim", "anim");

test_computed_value("animation", "anim paused both reverse 4 1s -3s cubic-bezier(0, -2, 1, 3)",
  "1s cubic-bezier(0, -2, 1, 3) -3s 4 reverse both paused anim");

test_computed_value("animation", "anim paused both reverse, 4 1s -3s cubic-bezier(0, -2, 1, 3)",
  "reverse both paused anim, 1s cubic-bezier(0, -2, 1, 3) -3s 4");

test_computed_value("animation", "none, none", "none, none");

test(() => {
  const target = document.getElementById('target');
  target.style.animation = "initial";
  target.style.animationDelay = "1s";
  assert_equals(getComputedStyle(target).animation, "0s 1s");
}, "Animation with a delay but no duration");

</script>
</body>
</html>
